package conf

import (
	"fmt"

	"github.com/BurntSushi/toml"
	"github.com/caarlos0/env/v6"
)

// 配置映射成config对象

// 从toml加载配置文件
func LoadConfigFromToml(filePath string) error {
	conf = NewDefaultConfig()
	//  读取toml格式文件
	_, err := toml.DecodeFile(filePath, conf)
	if err != nil {
		return fmt.Errorf("load config from file err, %s", err)
	}
	// 加载全局实例
	// db, err = conf.MySQL.getDBConn()
	// if err != nil {
	// 	return err
	// }
	// 第一种用法
	// return loadGloabal()
	return nil
}

// 从环境变量加载配置
func LoadConfigFromEnv() error {
	conf = NewDefaultConfig()
	if err := env.Parse(conf); err != nil {
		return fmt.Errorf("加载env配置失败")
	}
	// return loadGloabal()
	return nil
}

// 第一种方式：加载全局实例
// func loadGloabal() (err error) {
// 	db, err = conf.MySQL.getDBConn()
// 	if err != nil {
// 		return err
// 	}
// 	return nil
// }
